The invention relates to signal synchronization, and more particularly to a system and method for performing signal synchronization of data streams.
In a conventional digital communication system, associated signal components are typically time-multiplexed over a single channel. Such multiplexing is common among audio/video transmission systems implemented for cable, fiber, terrestrial and satellite applications. This time-multiplexing of signal components disturbs innate time relationships between the transmission and presentation of the information. Time critical components of the transmitted component signals may be associated with a time reference before being multiplexed. This is referred to as “stamping” the information, with a time reference being referred to as a time stamp.
In order to ensure that the output of real time data matches that of the input to the receiving apparatus, the receiving apparatus should be coupled to the time base of the transmitter. When the receiving apparatus presents the data too rapidly, buffers thereof may be underflow, resulting in an interruption of output signals. Since the time clocks of the receiving and transmitting apparatus are independent, the signals transmitted from the encoder may be either slightly faster or slower than the signal processed by the receiving apparatus. When the receiving apparatus presents the data too slowly, the buffers may overflow, resulting in a loss of data.
A conventional technique to re-synchronize the decoding and presentation of data units is to skip a data unit (“frame”) if the decoder is running behind, and to repeat a frame if the decoder is running ahead. However, this technique can create significantly noticeable distortion in the form of discontinuities in video and audio presentation. In the audio data bitstream, for example, an MEPG Audio Layer II frame consists of 1,152 audio samples, and can include as much as 13,824 bits of data at a sampling rate of 32 KHz and for a bit rate of 384 kbits/sec. Repeating or skipping an entire frame of audio data creates a discontinuity of approximately 0.036 seconds, which typically is audible.
Another conventional technique to re-synchronize the decoding and presentation of data units is to skip part of a data unit (“subframe”) if the decoder is running behind, and to repeat a subframe if the decoder is running ahead. However, a buffer memory which is required to store several subframes of data to be skipped or repeated typically is relatively large. This typically adds to the size, complexity and/or cost of the decoder. Moreover, this technique typically requires complicated calculation, and thus a large amount of system computational resources.